home *** CD-ROM | disk | FTP | other *** search
/ Compendium Deluxe 2 / LSD and 17bit Compendium Deluxe - Volume II.iso / a / prog / asmsrc / thesource-7.lha / Source / DefFunc.lha / DefFunc / defunc.h < prev    next >
C/C++ Source or Header  |  1993-12-14  |  3KB  |  92 lines

  1. /***************************************************************
  2.  *
  3.  *    Copyright (c) 1993  Ke Jin
  4.  *
  5.  *    Permission to use, copy, modify, and distribute
  6.  *    this software and its documentation without fee
  7.  *    is granted, provided that the author's name and
  8.  *    this copyright notice are retained.
  9.  *
  10.  * -------------------------------------------------------------
  11.  *
  12.  *     defunc.h -- public interface of defunc high level module
  13.  *
  14.  *
  15.  *     external function : namefnct();
  16.  *                         namecnst();
  17.  *                         nameargu();
  18.  *                         getarguname();
  19.  *                       
  20.  *                         clrfnct();
  21.  *                         clrfnctall();
  22.  *                         clrcnst();
  23.  *                         clrcnstall();
  24.  *
  25.  *                         matha2z();
  26.  *
  27.  *                         dfopen();
  28.  *                         dfclose();
  29.  *                         dfcloseall();
  30.  *
  31.  *     external variable : exparserror;
  32.  *
  33.  ***************************************************************/
  34.  
  35. #ifndef _DEFUNC_H
  36. #define _DEFUNC_H
  37.  
  38. #ifndef NeedFunctionPrototypes
  39. #if defined(__STDC__)||defined(__cplusplus)
  40. #define NeedFunctionPrototypes 1 /* for ANSI */ 
  41. #else
  42. #define NeedFunctionPrototypes 0 /* for K&R  */
  43. #endif  /* __STDC__ */
  44. #endif  /* NeedFunctionPrototypes */
  45.  
  46. #ifdef __cplusplus
  47.   extern "C" {    /* for c++ */
  48. #endif
  49.  
  50. #if NeedFunctionPrototypes
  51.   extern int    namefnct(char* name, double (*fnctptr)());
  52.   extern int    namecnst(char* name, double const_expression);
  53.   extern int    nameargu(char* name4arg1, char* name4arg2);
  54.   extern char*  getarguname(int argidx);
  55.   extern int    clrfnct(char* name);
  56.   extern int    clrfnctall(void);
  57.   extern int    clrcnst(char* name);
  58.   extern int    clrcnstall(void);
  59.  
  60.   extern double (*dfopen(char* exprbody))(double x, double y);
  61.   extern int    dfclose(double (*fnctptr)());
  62.   extern int    dfcloseall(void);  
  63.  
  64.   extern int    matha2z(void);
  65.  
  66.   extern char*  exparserror;
  67.  
  68. #else  /* for K&R */
  69.   extern int    namefnct();    /* set/delete alias name for function */
  70.   extern int    namecnst();    /* set/delete alias name for constant */
  71.   extern int    nameargu();    /* set symbol for function arguments  */
  72.   extern char*  getarguname(); /* retrive argument names             */
  73.   extern int    clrfnct();     /* clear a function token             */
  74.   extern int    clrfnctall();  /* clear all function tokens          */
  75.   extern int    clrcnst();     /* clear a constant token             */
  76.   extern int    clrcnstall();  /* clear all constant tokens          */
  77.  
  78.   extern double (*dfopen())();   /* open function of an expression */
  79.   extern int    dfclose();       /* close a opened function        */
  80.   extern int    dfcloseall();    /* close all opened functions     */ 
  81.  
  82.   extern int    matha2z();       /* install math symtable          */
  83.  
  84.   extern char*  exparserror;     /* point to a error message string */
  85. #endif /* NeedFunctionPrototypes */
  86.  
  87. #ifdef __cplusplus
  88.   }    /* end for c++ */
  89. #endif
  90.  
  91. #endif /* _DEFUNC_H */
  92.